
; This file defines parameters for non-Strategy roadblock and Heavy / LeaderStrategy spawns.
;
; For the TECHNICAL DETAILS AND LIMITATIONS of the features in here, see the "APPENDIX.txt" file.
; The UNEDITED VALUES in this file mostly match the game's vanilla (i.e. unmodified) values.






; ── ■ │ GENERAL SUPPORTS │ ■ ─────────────────────────────────────────────────────────────────────

[Supports:Rivals]
; Which of the enabled ground supports the cops can request in non-player pursuits.
;
; ■ FORMAT: heatXY = canRequest{Roadblock, Heavy, Leader} (FREE-ROAM; -> "default" if omitted)
;           raceXY = canRequest{Roadblock, Heavy, Leader} (RACES;     -> "heatXY"  if omitted)
;
; • These settings only affect supports you also enable in VltEd for a given Heat level.
; • "Roadblock" toggles non-Strategy roadblock requests.
; • "Heavy" toggles HeavyStrategy 3 / 4 requests.
; • "Leader" toggles LeaderStrategy 5 / 7 requests.
; • Each value must be either "true" or "false".
; • You can define a "default" value tuple.

default = true, true, true

heat01 = true, true, true
heat02 = true, true, true
heat03 = true, true, true
heat04 = true, true, true
heat05 = true, true, true
heat06 = true, true, true
heat07 = true, true, true
heat08 = true, true, true
heat09 = true, true, true
heat10 = true, true, true

race01 = true, true, true
race02 = true, true, true
race03 = true, true, true
race04 = true, true, true
race05 = true, true, true
race06 = true, true, true
race07 = true, true, true
race08 = true, true, true
race09 = true, true, true
race10 = true, true, true






; ── ■ │ ROADBLOCKS │ ■ ───────────────────────────────────────────────────────────────────────────

[Roadblocks:Cooldown]
; Cooldown (in seconds) between non-Strategy roadblock requests.
;
; ■ FORMAT: heatXY = {min, max, heavy}RoadblockCooldown (FREE-ROAM; -> "default" if omitted)
;           raceXY = {min, max, heavy}RoadblockCooldown (RACES;     -> "heatXY"  if omitted)
;
; • Whenever this cooldown is inactive and there's no active roadblock, the game makes a request.
; • Each cooldown is a random number between "minRoadblockCooldown" and "maxRoadblockCooldown".
; • Regardless of request outcome, the game resets this cooldown after each request.
; • HeavyStrategy requests (re)set the cooldown to "heavyRoadblockCooldown" instead.
; • Not all requests result in successful non-Strategy roadblock spawns.
; • HeavyStrategy 4 roadblocks are unaffected by this cooldown.
; • Each value must be a non-negative decimal or whole number.
; • You can define a "default" value tuple.

default = 8.0, 12.0, 15.0

heat01 = 15.0, 20.0, 25.0
heat02 = 12.0, 15.0, 20.0
heat03 = 10.0, 12.0, 15.0
heat04 = 8.0, 10.0, 12.0
heat05 = 6.0, 8.0, 10.0
heat06 = 5.0, 7.0, 9.0
heat07 = 4.0, 6.0, 8.0
heat08 = 3.5, 5.0, 7.0
heat09 = 3.0, 4.0, 6.0
heat10 = 2.0, 3.0, 5.0

race01 = 15.0, 20.0, 25.0
race02 = 12.0, 15.0, 20.0
race03 = 10.0, 12.0, 15.0
race04 = 8.0, 10.0, 12.0
race05 = 6.0, 8.0, 10.0
race06 = 5.0, 7.0, 9.0
race07 = 4.0, 6.0, 8.0
race08 = 3.5, 5.0, 7.0
race09 = 3.0, 4.0, 6.0
race10 = 2.0, 3.0, 5.0




[Roadblocks:Distance]
; At what distance (in metres) from racers roadblocks can spawn.
;
; ■ FORMAT: heatXY = {min, max}SpawnDistance (FREE-ROAM; -> "default" if omitted)
;           raceXY = {min, max}SpawnDistance (RACES;     -> "heatXY"  if omitted)
;
; • Spawn distances are random numbers between "minSpawnDistance" and "maxSpawnDistance".
; • Very short distances may cause noticeable pop-in when new roadblocks spawn.
; • Each value must be a non-negative decimal or whole number.
; • You can define a "default" value pair.

default = 250.0, 250.0

heat01 = 300.0, 300.0
heat02 = 280.0, 280.0
heat03 = 260.0, 260.0
heat04 = 250.0, 250.0
heat05 = 230.0, 230.0
heat06 = 210.0, 210.0
heat07 = 190.0, 190.0
heat08 = 175.0, 175.0
heat09 = 160.0, 160.0
heat10 = 150.0, 150.0

race01 = 300.0, 300.0
race02 = 280.0, 280.0
race03 = 260.0, 260.0
race04 = 250.0, 250.0
race05 = 230.0, 230.0
race06 = 210.0, 210.0
race07 = 190.0, 190.0
race08 = 175.0, 175.0
race09 = 160.0, 160.0
race10 = 150.0, 150.0




[Roadblocks:Formations]
; Whether a successful roadblock spawn cancels the current cop formation.
;
; ■ FORMAT: heatXY = spawnEndsFormation (FREE-ROAM; -> "default" if omitted)
;           raceXY = spawnEndsFormation (RACES;     -> "heatXY"  if omitted)
;
; • Certain formations can cause cops to crash into roadblocks more frequently.
; • Each value must be either "true" or "false".
; • You can define a "default" value.

default = true

heat01 = true
heat02 = true
heat03 = true
heat04 = true
heat05 = true
heat06 = true
heat07 = true
heat08 = true
heat09 = true
heat10 = true

race01 = true
race02 = true
race03 = true
race04 = true
race05 = true
race06 = true
race07 = true
race08 = true
race09 = true
race10 = true




[Roadblocks:Joining]
; After how much time (in seconds) spent near a roadblock, some of its vehicles join the pursuit.
;
; ■ FORMAT: heatXY = {regular, backup}JoinTimer (FREE-ROAM)
;           raceXY = {regular, backup}JoinTimer (RACES)
;
; • To define what counts as "near" and how many vehicles join, see "[Joining:Definitions]" below.
; • Time-based joining only happens only at Heat levels for which you define a valid time value.
; • Time-based joining only applies to both non-Strategy and HeavyStrategy 4 roadblocks.
; • Bartender uses the "backupJoinTimer" value whenever there's an active backup timer.
; • Each value must be a non-negative decimal or whole number.
; • You can't define a "default" value pair.

heat01 = 30.0, 30.0
heat02 = 25.0, 25.0
heat03 = 20.0, 20.0
heat04 = 15.0, 15.0
heat05 = 10.0, 10.0
heat06 = 7.0, 7.0
heat07 = 5.0, 5.0
heat08 = 3.0, 3.0
heat09 = 2.0, 2.0
heat10 = 1.0, 1.0

race01 = 30.0, 30.0
race02 = 25.0, 25.0
race03 = 20.0, 20.0
race04 = 15.0, 15.0
race05 = 10.0, 10.0
race06 = 7.0, 7.0
race07 = 5.0, 5.0
race08 = 3.0, 3.0
race09 = 2.0, 2.0
race10 = 1.0, 1.0




[Roadblocks:Reactions]
; Whether roadblock vehicles react to racers entering "COOLDOWN" mode and / or hitting spikes.
;
; ■ FORMAT: heatXY = reactToCooldownMode, reactToSpikesHit (FREE-ROAM; -> "default" if omitted)
;           raceXY = reactToCooldownMode, reactToSpikesHit (RACES;     -> "heatXY"  if omitted)
;
; • In "COOLDOWN" mode, vehicles of nearby roadblocks immediately join the pursuit.
; • To define what counts as "nearby" for roadblocks, see "[Joining:Definitions]" below.
; • When a racer hits a spike strip, all roadblock vehicles immediately join the pursuit.
; • These reactions affect both non-Strategy and HeavyStrategy 4 roadblocks.
; • Each value must be either "true" or "false".
; • You can define a "default" value pair.

default = true, true

heat01 = true, true
heat02 = true, true
heat03 = true, true
heat04 = true, true
heat05 = true, true
heat06 = true, true
heat07 = true, true
heat08 = true, true
heat09 = true, true
heat10 = true, true

race01 = true, true
race02 = true, true
race03 = true, true
race04 = true, true
race05 = true, true
race06 = true, true
race07 = true, true
race08 = true, true
race09 = true, true
race10 = true, true




[Joining:Definitions]
; What it means to be "near" a roadblock to progress joining, and how many vehicles join.
;
; ■ FORMAT: heatXY = maxRange, elevationTolerance, joinCount (FREE-ROAM; -> "default" if omitted)
;           raceXY = maxRange, elevationTolerance, joinCount (RACES;     -> "heatXY"  if omitted)
;
; • The "Advanced" feature set has additional joining parameters (see the "Roadblocks.ini" file).
; • These parameters apply to all methods through which roadblock vehicles can join pursuits.
; • To enable joining methods, see "[Roadblocks:Joining]" and "[Roadblocks:Reactions]" above.
; • "maxRange" defines what distances (in metres) from a roadblock vehicle count as "near".
; • "elevationTolerance" defines what differences in elevation (in metres) count as "near".
; • "joinCount" defines how many vehicles per roadblock can join the pursuit.
; • The global cop-spawn limit (8 in the vanilla game) can prevent joining.
; • Each range / tolerance value must be a non-negative decimal or whole number.
; • Each count value must be a non-negative whole number.
; • You can define a "default" value tuple.

default = 500.0, 1.5, 1

heat01 = 500.0, 1.5, 1
heat02 = 500.0, 1.5, 1
heat03 = 500.0, 1.5, 1
heat04 = 550.0, 2.0, 2
heat05 = 600.0, 2.5, 2
heat06 = 650.0, 3.0, 2
heat07 = 700.0, 4.0, 3
heat08 = 800.0, 5.0, 3
heat09 = 900.0, 6.0, 4
heat10 = 1000.0, 10.0, 4

race01 = 500.0, 1.5, 1
race02 = 500.0, 1.5, 1
race03 = 500.0, 1.5, 1
race04 = 550.0, 2.0, 2
race05 = 600.0, 2.5, 2
race06 = 650.0, 3.0, 2
race07 = 700.0, 4.0, 3
race08 = 800.0, 5.0, 3
race09 = 900.0, 6.0, 4
race10 = 1000.0, 10.0, 4






; ── ■ │ STRATEGIES │ ■ ───────────────────────────────────────────────────────────────────────────

[Strategies:Cooldown]
; Shared cooldown (in seconds) between Heavy / LeaderStrategy requests.
;
; ■ FORMAT: heatXY = {min, max}StrategyCooldown (FREE-ROAM; -> "default" if omitted)
;           raceXY = {min, max}StrategyCooldown (RACES;     -> "heatXY"  if omitted)
;
; • Whenever this cooldown is inactive and there's no active Strategy, the game makes a request.
; • Each cooldown is a random number between "minStrategyCooldown" and "maxStrategyCooldown".
; • Optionally, Bartender can allow multiple active Strategies (see "Strategies.ini").
; • Regardless of request outcome, the game resets this cooldown after each request.
; • Not all requests result in successful Heavy / LeaderStrategy spawns.
; • Each value must be a non-negative decimal or whole number.
; • You can define a "default" value pair.

default = 10.0, 10.0

heat01 = 30.0, 30.0
heat02 = 25.0, 25.0
heat03 = 20.0, 20.0
heat04 = 15.0, 15.0
heat05 = 10.0, 12.0
heat06 = 8.0, 10.0
heat07 = 7.0, 9.0
heat08 = 6.0, 8.0
heat09 = 5.0, 7.0
heat10 = 4.0, 6.0

race01 = 30.0, 30.0
race02 = 25.0, 25.0
race03 = 20.0, 20.0
race04 = 15.0, 15.0
race05 = 10.0, 12.0
race06 = 8.0, 10.0
race07 = 7.0, 9.0
race08 = 6.0, 8.0
race09 = 5.0, 7.0
race10 = 4.0, 6.0




[Heavy3:Roadblocks]
; Whether HeavyStrategy 3 requests interact with roadblock requests and spawns.
;
; ■ FORMAT: heatXY = resetCooldown, areBlockable (FREE-ROAM; -> "default" if omitted)
;           raceXY = resetCooldown, areBlockable (RACES;     -> "heatXY"  if omitted)
;
; • HeavyStrategy 3 requests (re)set the roadblock cooldown (see "[Roadblocks:Cooldown]" above).
; • Disabling this reset fixes the vanilla issue of non-Strategy roadblock requests being stalled.
; • In the vanilla game, active roadblocks of any kind also block new HeavyStrategy 3 requests.
; • Disabling this blocking fixes the vanilla issue of HeavyStrategy 3 requests becoming rare.
; • Each value must be either "true" or "false".
; • You can define a "default" value pair.

default = false, false

heat01 = false, false
heat02 = false, false
heat03 = false, false
heat04 = false, false
heat05 = false, false
heat06 = false, false
heat07 = false, false
heat08 = false, false
heat09 = false, false
heat10 = false, false

race01 = false, false
race02 = false, false
race03 = false, false
race04 = false, false
race05 = false, false
race06 = false, false
race07 = false, false
race08 = false, false
race09 = false, false
race10 = false, false




[Heavy3:Vehicles]
; Which vehicles spawn in place of the ramming SUVs through HeavyStrategy 3.
;
; ■ FORMAT: heatXY = {light, heavy}Pvehicle (FREE-ROAM; -> "default" if omitted)
;           raceXY = {light, heavy}Pvehicle (RACES;     -> "heatXY"  if omitted)
;
; • All vehicles you define here should only be used for HeavyStrategy 3 / 4, if possible.
; • Bartender replaces vehicles that don't exist in VltEd with "copsuvl" or "copsuv".
; • Bartender replaces vehicles that are helicopters with "copsuvl" or "copsuv".
; • Each value must be a string (i.e. plain text).
; • You can define a "default" value pair.

default = copsuvl, copsuv

heat01 = copsuvl, copsuv
heat02 = copsuvl, copsuv
heat03 = copsuvl, copsuv
heat04 = copsuvl, copsuv
heat05 = copsuvl, copsuv
heat06 = copsuvl, copsuv
heat07 = copsuvl, copsuv
heat08 = copsuvl, copsuv
heat09 = copsuvl, copsuv
heat10 = copsuvl, copsuv

race01 = copsuvl, copsuv
race02 = copsuvl, copsuv
race03 = copsuvl, copsuv
race04 = copsuvl, copsuv
race05 = copsuvl, copsuv
race06 = copsuvl, copsuv
race07 = copsuvl, copsuv
race08 = copsuvl, copsuv
race09 = copsuvl, copsuv
race10 = copsuvl, copsuv




[Heavy4:Vehicles]
; Which vehicles spawn in place of the roadblock SUVs through HeavyStrategy 4.
;
; ■ FORMAT: heatXY = {light, heavy}Pvehicle (FREE-ROAM; -> "default" if omitted)
;           raceXY = {light, heavy}Pvehicle (RACES;     -> "heatXY"  if omitted)
;
; • All vehicles you define here should only be used for HeavyStrategy 3 / 4, if possible.
; • Bartender replaces vehicles that don't exist in VltEd with "copsuvl" or "copsuv".
; • Bartender replaces vehicles that are helicopters with "copsuvl" or "copsuv".
; • Each value must be a string (i.e. plain text).
; • You can define a "default" value pair.

default = copsuvl, copsuv

heat01 = copsuvl, copsuv
heat02 = copsuvl, copsuv
heat03 = copsuvl, copsuv
heat04 = copsuvl, copsuv
heat05 = copsuvl, copsuv
heat06 = copsuvl, copsuv
heat07 = copsuvl, copsuv
heat08 = copsuvl, copsuv
heat09 = copsuvl, copsuv
heat10 = copsuvl, copsuv

race01 = copsuvl, copsuv
race02 = copsuvl, copsuv
race03 = copsuvl, copsuv
race04 = copsuvl, copsuv
race05 = copsuvl, copsuv
race06 = copsuvl, copsuv
race07 = copsuvl, copsuv
race08 = copsuvl, copsuv
race09 = copsuvl, copsuv
race10 = copsuvl, copsuv




[Leader5:Vehicle]
; Which vehicle spawns in place of Cross through LeaderStrategy 5.
;
; ■ FORMAT: heatXY = crossPvehicle (FREE-ROAM; -> "default" if omitted)
;           raceXY = crossPvehicle (RACES;     -> "heatXY"  if omitted)
;
; • All vehicles you define here should only be used for LeaderStrategy 5 / 7, if possible.
; • To change which vehicles can trigger Cross' unique radio chatter, see the "Cosmetic.ini" file.
; • Bartender replaces vehicles that are helicopters or don't exist in VltEd with "copcross".
; • Each value must be a string (i.e. plain text).
; • You can define a "default" value.

default = copcross

heat01 = copcross
heat02 = copcross
heat03 = copcross
heat04 = copcross
heat05 = copcross
heat06 = copcross
heat07 = copcross
heat08 = copcross
heat09 = copcross
heat10 = copcross

race01 = copcross
race02 = copcross
race03 = copcross
race04 = copcross
race05 = copcross
race06 = copcross
race07 = copcross
race08 = copcross
race09 = copcross
race10 = copcross




[Leader7:Vehicles]
; Which vehicles spawn in place of Cross and his henchmen through LeaderStrategy 7.
;
; ■ FORMAT: heatXY = {cross, {first, second}Henchman}Pvehicle (FREE-ROAM; -> "default" if omitted)
;           raceXY = {cross, {first, second}Henchman}Pvehicle (RACES;     -> "heatXY"  if omitted)
;
; • All vehicles you define here should only be used for LeaderStrategy 5 / 7, if possible.
; • To change which vehicles can trigger Cross' unique radio chatter, see the "Cosmetic.ini" file.
; • Bartender replaces vehicles that don't exist in VltEd with "copcross" or "copsporthench".
; • Bartender replaces vehicles that are helicopters with "copcross" or "copsporthench".
; • Each value must be a string (i.e. plain text).
; • You can define a "default" value tuple.

default = copcross, copsporthench, copsporthench

heat01 = copcross, copsporthench, copsporthench
heat02 = copcross, copsporthench, copsporthench
heat03 = copcross, copsporthench, copsporthench
heat04 = copcross, copsporthench, copsporthench
heat05 = copcross, copsporthench, copsporthench
heat06 = copcross, copsporthench, copsporthench
heat07 = copcross, copsporthench, copsporthench
heat08 = copcross, copsporthench, copsporthench
heat09 = copcross, copsporthench, copsporthench
heat10 = copcross, copsporthench, copsporthench

race01 = copcross, copsporthench, copsporthench
race02 = copcross, copsporthench, copsporthench
race03 = copcross, copsporthench, copsporthench
race04 = copcross, copsporthench, copsporthench
race05 = copcross, copsporthench, copsporthench
race06 = copcross, copsporthench, copsporthench
race07 = copcross, copsporthench, copsporthench
race08 = copcross, copsporthench, copsporthench
race09 = copcross, copsporthench, copsporthench
race10 = copcross, copsporthench, copsporthench